Django + uwsgi + nginx + Supervisor 安装笔记(出错)

安装过程 (不说了,网上找)

出现的问题

1.linux下如何查找nginx配置文件的位置,方法如下:

先找出nginx可执行文件的路径

1
`ps -ef | grep nginx`
2.启动uwsgi.ini

这一步我被坑死了 网上说的是直接在script目录下uwsgi –ini uwsgi.ini 但是这样真的不对,需要找到uswgi所在的目录运行,我的是/usr/bin/uwsgi -- uwsgi.ini

but 我的一直出错,不运行,好久才发现是有两个uwsgi

我用的这个/home/hitwh/.local/bin/uwsgi --ini uwsgi.ini

3.nginx的配置文件

不知道为啥,我的配置文件跟网上说的不一样,我的在**/etc/nginx/sites-available**的 default文件

/etc/nginx/sites-available$ sudo gedit default

nginx 操作命令

1
2
3
4
5
打开配置文件default,路径/etc/nginx/sites-available/default

启动 nginx sudo /etc/init.d/nginx start

重启 sudo /etc/init.d/nginx reload
4.Django的测试运行

python manage.py runserver

收集静态文件(别忘了修改setting)

python manage.py collectstatic

5.如果不能正常显示页面,请检查防火墙状态,
保证8000端口是能够被访问的

检查防火墙状态

1
sudo ufw status

可以临时关闭防火墙

1
sudo ufw disable

或者保持防火墙开启,允许8000端口连接

1
sudo ufw allow 8000
6.每次修改了Django项目中的模板/视图/URL/配置文件,都需要重启uwsgi服务。
1
killall -9 uwsgi
7.改变运行nginx的用户身份

没有权限,我就给你权限
/etc/nginx/nginx.conf 第一行的user www-data; 中的www-data 改成权限足够高的用户,重启nginx

8.可能用到虚拟环境,Supervisor需要python2
1
2
3
4
5
6
virtualenv --distribute -p /usr/bin/python2 super  //安装的目录
cd super
source bin/activate //进入虚拟环境,例如我的 /bean_work/super$ source bin/activate
./bin/pip install supervisor //安装

deactivate //退出虚拟环境
9.启动Supervisor:
1
2
3
supervisord -c /etc/supervisor/supervisord.conf
或supervisord -c /etc/supervisord.conf
看看自己的在哪

停止Supervisor(子进程也会被停止)

1
supervisorctl shutdown

查看Supervisor是否已经启动:

1
2
3
[root@aaa blog.cheyo.net]# ps -ef | grep supervisor | grep -v grep
root 1170 1 0 18:57 ? 00:00:00 /usr/bin/python /usr/bin/supervisord
[root@aaa blog.cheyo.net]#

查看业务进程是否已经被拉起:

1
2
3
[root@aaa blog.cheyo.net]# supervisorctl status
check12306 RUNNING pid 1230, uptime 0:04:39
[root@aaa blog.cheyo.net]#